Hardware Object Model (HOM) provides an object-oriented representation of components of a data processing system. The object-oriented model abstracts various hardware components of the data processing system as software HOM objects. These software HOM objects manage states (like WAIT, HUNG, etc.) of the corresponding hardware components, and provide ways to access and control the hardware components for their initialization (bootstrapping) and normal operation.
The HOM firmware component implements HOM locks for hardware access protection and software data protection. Under multiple-thread execution environment, each software HOM object has a corresponding HOM-lock to ensure that only one thread controls the hardware corresponding to the object at any given time. However, there may be a situation when two or more threads/processes compete for a common object, access to which has been locked by a firmware performing, an Initial Program Load (IPL) process. In such a case, the firmware execution is stalled, thereby halting the IPL process since neither of the two processes is able to complete its task, as the common object is unavailable. This situation may be due to a firmware bug, thus resulting in a deadlock condition.
This deadlock condition becomes even more critical as it happens during the IPL process, and hence prevents the data processing system from booting itself. This also prevents programmers from obtaining valuable memory dumps that are generally used to record the events that led to the deadlock condition.
Therefore, there is a need in the art for a process, apparatus and program product to manage the deadlock condition.